In computing, a graph is an abstract data structure including nodes and edges. A graph contains a set of nodes connected by one or more edges. Values can be associated with the nodes and/or the edges. A graph data structure is an implementation of the mathematical concept of a graph, which is a representation of a set of objects where some pairs of the objects are connected by links. Graphs can be undirected, where an edge indicates a relationship between two nodes within the graph. Graphs can also be directed, where an edge indicates a relationship between a first node and a second node within the graph, but not the corresponding relationship between the second node and the first node.